<?php
if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
# On lit la version du plugin
$m_version = $core->plugins->moduleInfo('customersAuth','version');
 
# On lit la version du plugin dans la table des versions
$i_version = $core->getVersion('customersAuth');
 
# La version dans la table est supérieure ou égale à
# celle du module, on ne fait rien puisque celui-ci
# est installé
if (version_compare($i_version,$m_version,'>=')) {
	return;
}else{
 
	/*
	 * Liste des tables crées
	 *  - customer : la liste des utilisateurs
	 *  - group : la liste des groupes
	 *  - group_permission : la liste des permissions des groupes pour chaque categorie
	 */
	$si = new dbStruct($core->con,$core->prefix);

	try{
		$s1 = new dbStruct($core->con,$core->prefix);
		$s1->group
			->group_id		('smallint',0,true)
			->group_name	('varchar',255,false)
			->primary		('PRIMARY','group_id')
			;
		$si->synchronize($s1);
	}catch(Expression $e){
		$core->error->add($e->getMessage());
	}
	
	try{
		$s2	= new dbStruct($core->con,$core->prefix);
		$s2->customer
			->customer_id		('bigint',20,false)
			->customer_login	('varchar',255,false)
			->customer_password	('varchar',255,false)
			->customer_mail		('varchar',255,false)
			->customer_sessId	('texte',0,false)
			->group_id			('smallint',0,false,0)
			->primary			('PRIMARY','customer_id');
			;
		$s2->customer->index('idx_customer_sessId','btree','customer_sessId');
		if ($s2->driver() != 'mysql') // 'set default' ne fonctionne pas avec mysql, il faut donc faire la mise à jour a la mimine
			$s2->customer->reference('fk_group_customer','group_id','group','group_id','cascade','set default');
		$si->synchronize($s2);
	}catch(Expression $e){
		$core->error->add($e->getMessage());
	}
	
	try{
		$s3	= new dbStruct($core->con,$core->prefix);
		$s3->group_permission
			->group_id			('smallint',0,false)
			->category_id		('bigint',20,false)
			->permission		('bool',1,false,0) // 0: aucune permission; 1:lecture
			->primary			('PRIMARY','group_id','category_id')
			;
		$s3->group_permission->reference('fk_group_permission','category_id','category','cat_id','cascade','cascade');
		$si->synchronize($s3);
	}catch(Expression $e){
		$core->error->add($e->getMessage());
	}
	
	$cur = $core->con->openCursor($core->prefix.'group');
	$cur->group_name = (string) 'Visiteurs';
	$cur->group_id = (integer) 0;
	$cur->insert();
	
	$core->setVersion('customersAuth',$m_version);
	return true;
}
?>